Computing devices are well-known in the art and widely used. For example, computing devices may take the form of a personal computer, a centralized computer terminal with computer terminal access, or a widely distributed system with computing devices connected to a network such as the Internet. Although some computing devices may operate with little or no human intervention, many computing devices require human input to operate. Computing devices, such as the personal computer, typically have a keyboard for inputting numerical and textual information.
Depending on the type of work performed by the computing device, the computing device may also have other types of inputs. For example, with the popularity of graphical user interfaces, the use of graphic input devices has dramatically increased. Graphical input devices include devices such as a computer mouse, graphics tablets, digitizers, and light pens. These devices allow a graphical element such as a cursor to be moved and positioned on a computer screen. This graphical element may be used to select functional commands to direct the operation of the computer or may assist in the input of information.
The aforementioned computer mouse is one of the most popular graphical input devices. The mouse connects to the computing device and is used to select commands and input graphical information. By moving the mouse across a surface, the relative movements of the mouse are communicated to the computing device, thereby moving the graphical cursor. Buttons on the mouse access and activate commands and input graphical information by placing the cursor.
Computing devices can also accept other forms of input from a user based on the application operating on the computing device, including voice input, input from digital cameras, input from video recorders, and input from other computing resources coupled via a local or wide area network connection to the computing device.
When operating a computing device, a user can interact with the input devices to direct the operation of the computing device. Many times the computing device requires the same series of inputs to perform a particular operation. Performing this set of repetitive operations may include several inputs from one or more input devices. For example, a particular operation may require a mouse action to initiate a program and then, textually input an access password with the keyboard. A keyboard, mouse, and other inputs are often needed to conclude the repetitive operation. Each time the user desires to perform this repetitive operation, the user must go through the same sequence using the same input devices. Not only is this time consuming, but the sequence may be prone to errors. In some situations, repetitive operations may be simplified with a macro.
Macros are used to automate repetitive keyboard, mouse, and other inputs in a particular application. In general, macros are typically files containing repetitive instructions. Once created, the macro may be replayed by the computing device. For example, many software applications have macro recording and playback capabilities. In these software applications, a user may record a macro to perform a particular operation or a series of operations and give that macro a name. Thereafter, that operation or the series of operations may be performed by executing that named macro, thereby saving the user the time and effort of repeating all of the steps of the macro. To run the macro, the software application typically has a macro playback facility, which can be initiated by command or through the use of a shortcut command.
With the current macro recorder technology, it is generally possible to record a macro in only one language, Visual Basic for Applications (VBA). However, many other programming languages exist which could otherwise be used to record and run macros. Furthermore, users prefer to record macros in the language of their choice, based on the user's personal preferences, skill, and proficiency level. In order to record macros in a language other than VBA, an application developer would have to rewrite the macro-recorder for each language within which a user desires to record macros. Such a process is not only expensive and time consuming, but can also be error-prone and lead to inconsistent behavior between macros recorded in different languages. Providing a method and system for recording a macro in multiple languages with minimal effort by the software application would save users and application developers time and money.